package mercado.aberto;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Jaguar
 */
import java.sql.*;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import javax.swing.JOptionPane;
import javax.swing.text.MaskFormatter;

public class ProdutoDAO extends DAO {

    public List<Produto> ListarTodos() throws Exception {

        Conectar();
        String SQL = "SELECT * FROM produto_rest order by codigo";
        pstmt = con.prepareStatement(SQL);
        rs = pstmt.executeQuery();
        Produto p = null;
        List<Produto> ListaProd = new ArrayList<Produto>();
        while (rs.next()) {
            p = new Produto();
            p.setCodigo(rs.getString("codigo"));
            p.setNome(rs.getString("nome"));
            p.setStatus(rs.getString("status"));
            p.setTipo(rs.getString("tipo"));
            ListaProd.add(p);
        }
        Desconectar();
        return ListaProd;
    }

    public Produto busca(String busca) throws Exception {
        Conectar();
        String SQL = "SELECT * FROM produto_rest WHERE  codigo=? or nome=?";
        pstmt = con.prepareStatement(SQL);
        pstmt.setString(1, busca);
        pstmt.setString(2, busca);
        rs = pstmt.executeQuery();
        Produto pr = null;
        if (rs.next()) {
            pr = new Produto();
            pr.setCodigo(rs.getString("codigo"));
            pr.setNome(rs.getString("nome"));
            pr.setStatus(rs.getString("status"));
            pr.setTipo(rs.getString("tipo"));
        }
        Desconectar();
        return pr;
    }
    
   public boolean cadastroProd(Produto p) {
        try {
            Conectar();
            String SQL_verificar = "select nome from produto_rest where nome= '"+p.getNome()+"'";
            Statement verifica = con.createStatement();
            ResultSet rs = verifica.executeQuery(SQL_verificar);
            if(rs.next()){
                
            }
            String SQL = "INSERT INTO produto_rest (nome, status, tipo) VALUES('"+p.getNome()+"','" + p.getStatus() +"','"+p.getTipo()+"')";
            Statement s = con.createStatement();
            s.executeUpdate(SQL);
            
            System.out.println("ola");
            
            Desconectar();
            return true;
        } catch (Exception ex) {
            System.out.println("Erro " + ex);
            return false;
        }

    }
   
   public void remProd (String nomProd) throws Exception
    {
        try {
        Conectar();
        String SQL = ("delete from produto_rest where nome=?");
        pstmt = con.prepareStatement(SQL);
        pstmt.setString(1, nomProd);
        pstmt.executeUpdate();
        Desconectar();
        } catch (SQLException ex) {
           JOptionPane.showMessageDialog(null,""+ex,"Erro na Remoção do Produto", JOptionPane.ERROR_MESSAGE); 
        }
    }
   
   public boolean alterarProd(Produto p) {
        try {
            Conectar();
            String SQL = "update produto_rest set nome = '"+p.getNome()+"', status = '"+p.getStatus()+"' , tipo = '"+p.getTipo()+"'";
            Statement s = con.createStatement();
            s.executeUpdate(SQL);
            //System.out.println("ola");
            Desconectar();
            return true;
        } catch (Exception ex) {
            System.out.println("Erro " + ex);
            return false;
        }

    }
   
 }

